package com.denlaku.longan.controller;

import com.denlaku.longan.http.Return;
import com.denlaku.longan.qo.CustomPageQuery;
import com.denlaku.longan.vo.CustomPage;
import com.denlaku.longan.vo.PageBy;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.util.List;

/**
 * @author tianx
 */
@RequestMapping("/api/custom-page-info")
public interface CustomPageInfoController {
    /**
     * 新增自定义页面
     *
     * @param customPage 自定义页面
     * @return 响应对象
     */
    @PostMapping("/add")
    Return<Long> add(@RequestBody CustomPage customPage);

    /**
     * 更新自定义页面
     *
     * @param customPage 自定义页面
     * @return 响应对象
     */
    @PostMapping("/update")
    Return<Void> update(@RequestBody CustomPage customPage);

    /**
     * 删除自定义页面
     *
     * @param id 自定义页面ID
     * @return 响应对象
     */
    @PostMapping("/delete")
    Return<Void> delete(Long id);

    /**
     * 上传自定义页面
     *
     * @param request 请求对象
     * @return 响应对象
     */
    @PostMapping("/upload")
    Return<Void> upload(MultipartHttpServletRequest request);

    /**
     * 分页查询自定义页面
     *
     * @param query 查询参数
     * @param pageBy 分页参数
     * @return 响应对象
     */
    @PostMapping("/page-list")
    Return<List<CustomPage>> pageList(@RequestBody CustomPageQuery query, PageBy pageBy);

    /**
     * 获取自定义页面信息
     *
     * @param id 自定义页面ID
     * @return 响应对象
     */
    @GetMapping("/get")
    Return<CustomPage> get(Long id);

}
